# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : 使用jieba实现.py
# @Author: dongguangwen
# @Date  : 2024-07-13 23:31
import jieba
import networkx as nx
from collections import defaultdict

# 示例文本
text = "TextRank是一种基于图的排序模型，用于文本处理，它基于PageRank算法。它可以用于从文本中提取关键词和句子。这使得它对于文本摘要和文档聚类等任务非常有用。"

# 使用jieba进行分词
words = jieba.lcut(text)

# 构建图
word_pairs = defaultdict(list)
for i, word in enumerate(words):
    for j in range(i + 1, i + 2):  # 只考虑相邻的词对
        if j >= len(words):
            break
        word_pairs[word].append(words[j])
        word_pairs[words[j]].append(word)

graph = nx.Graph(word_pairs)

# 应用TextRank算法
scores = nx.pagerank(graph)

# 提取关键词
keywords = sorted(scores, key=scores.get, reverse=True)[:5]

print("提取的关键词：", keywords)

"""
提取的关键词： ['它', '。', '和', '基于', '文本']
"""
